///////////////////////////////////////////////////////////////////////////////////////////////////
/// \file formic/numeric/matrix.h
///
/// \brief   header for matrix mathematics functions
///
///////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef FORMIC_NUMERIC_MATRIX_HEADER
#define FORMIC_NUMERIC_MATRIX_HEADER

#include<formic/numeric/mantissa_exponent.h>

namespace formic {

  template <class S> void matrix_inverse_lu(const int n, S & det, S * const A, S * const work, int * const iwork);

  template <class S> formic::MantExp<S> matrix_determinant_lu(const int n, S * const A, int * const iwork);

  template <class S> void matrix_neg_half(const int n, S * const A);

} // end namespace formic

#endif
